# 1 "machineLexer.mll"
 
open Parser
open Printf

# 7 "machineLexer.ml"
let __ocaml_lex_tables = {
  Lexing.lex_base = 
   "\000\000\239\255\240\255\241\255\001\000\000\000\001\000\001\000\
    \000\000\006\000\002\000\251\255\252\255\001\000\254\255\048\000\
    \255\255\253\255\002\000\250\255\001\000\005\000\249\255\000\000\
    \004\000\006\000\004\000\010\000\248\255\023\000\013\000\007\000\
    \244\255\009\000\247\255\246\255\015\000\038\000\245\255\242\255\
    \040\000\035\000\026\000\037\000\032\000\034\000\243\255";
  Lexing.lex_backtrk = 
   "\255\255\255\255\255\255\255\255\015\000\015\000\015\000\015\000\
    \015\000\015\000\015\000\255\255\255\255\015\000\255\255\001\000\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255";
  Lexing.lex_default = 
   "\002\000\000\000\000\000\000\000\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\000\000\000\000\018\000\000\000\255\255\
    \000\000\000\000\018\000\000\000\255\255\255\255\000\000\255\255\
    \255\255\255\255\255\255\255\255\000\000\255\255\255\255\255\255\
    \000\000\255\255\000\000\000\000\255\255\255\255\000\000\000\000\
    \255\255\255\255\255\255\255\255\255\255\255\255\000\000";
  Lexing.lex_trans = 
   "\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\016\000\016\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \016\000\000\000\013\000\017\000\017\000\000\000\000\000\000\000\
    \012\000\011\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \014\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
    \015\000\015\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\005\000\033\000\009\000\004\000\008\000\040\000\020\000\
    \019\000\010\000\022\000\026\000\024\000\027\000\037\000\006\000\
    \028\000\023\000\036\000\035\000\021\000\029\000\007\000\025\000\
    \030\000\031\000\032\000\034\000\039\000\255\255\255\255\003\000\
    \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
    \015\000\015\000\038\000\041\000\042\000\043\000\044\000\045\000\
    \046\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \001\000\255\255\255\255\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000";
  Lexing.lex_check = 
   "\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\000\000\000\000\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \000\000\255\255\000\000\013\000\018\000\255\255\255\255\255\255\
    \000\000\000\000\255\255\255\255\255\255\255\255\255\255\255\255\
    \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\
    \000\000\000\000\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\000\000\007\000\000\000\000\000\000\000\004\000\009\000\
    \010\000\000\000\021\000\025\000\008\000\026\000\005\000\000\000\
    \027\000\008\000\005\000\006\000\020\000\023\000\000\000\024\000\
    \029\000\030\000\031\000\033\000\036\000\013\000\018\000\000\000\
    \015\000\015\000\015\000\015\000\015\000\015\000\015\000\015\000\
    \015\000\015\000\037\000\040\000\041\000\042\000\043\000\044\000\
    \045\000\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \000\000\013\000\018\000\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\255\
    \255\255";
  Lexing.lex_base_code = 
   "";
  Lexing.lex_backtrk_code = 
   "";
  Lexing.lex_default_code = 
   "";
  Lexing.lex_trans_code = 
   "";
  Lexing.lex_check_code = 
   "";
  Lexing.lex_code = 
   "";
}

let rec token lexbuf =
    __ocaml_lex_token_rec lexbuf 0
and __ocaml_lex_token_rec lexbuf __ocaml_lex_state =
  match Lexing.engine __ocaml_lex_tables __ocaml_lex_state lexbuf with
      | 0 ->
# 10 "machineLexer.mll"
                          (token lexbuf)
# 131 "machineLexer.ml"

  | 1 ->
let
# 11 "machineLexer.mll"
                   num
# 137 "machineLexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 12 "machineLexer.mll"
     (
				INT (int_of_string num) )
# 142 "machineLexer.ml"

  | 2 ->
let
# 14 "machineLexer.mll"
                 nap
# 148 "machineLexer.ml"
= Lexing.sub_lexeme lexbuf lexbuf.Lexing.lex_start_pos lexbuf.Lexing.lex_curr_pos in
# 14 "machineLexer.mll"
                          (  let len = String.length nap in
				let subnap = String.sub nap 1 (len-2) in
				STRING (subnap))
# 154 "machineLexer.ml"

  | 3 ->
# 17 "machineLexer.mll"
                          (LPAR)
# 159 "machineLexer.ml"

  | 4 ->
# 18 "machineLexer.mll"
                          (RPAR)
# 164 "machineLexer.ml"

  | 5 ->
# 19 "machineLexer.mll"
                          (IF)
# 169 "machineLexer.ml"

  | 6 ->
# 20 "machineLexer.mll"
                          (CASE)
# 174 "machineLexer.ml"

  | 7 ->
# 21 "machineLexer.mll"
                          (ELSEIF)
# 179 "machineLexer.ml"

  | 8 ->
# 22 "machineLexer.mll"
                          (VAR)
# 184 "machineLexer.ml"

  | 9 ->
# 23 "machineLexer.mll"
                          (OR)
# 189 "machineLexer.ml"

  | 10 ->
# 24 "machineLexer.mll"
                          (AND)
# 194 "machineLexer.ml"

  | 11 ->
# 25 "machineLexer.mll"
                          (EQUALS)
# 199 "machineLexer.ml"

  | 12 ->
# 26 "machineLexer.mll"
                          (DECISION)
# 204 "machineLexer.ml"

  | 13 ->
# 27 "machineLexer.mll"
                          (ARM)
# 209 "machineLexer.ml"

  | 14 ->
# 28 "machineLexer.mll"
                          (WILDCARD)
# 214 "machineLexer.ml"

  | 15 ->
# 29 "machineLexer.mll"
                    ( token lexbuf)
# 219 "machineLexer.ml"

  | 16 ->
# 30 "machineLexer.mll"
                    (raise End_of_file)
# 224 "machineLexer.ml"

  | __ocaml_lex_state -> lexbuf.Lexing.refill_buff lexbuf; __ocaml_lex_token_rec lexbuf __ocaml_lex_state

;;

